'use strict';

const Controller = require('egg').Controller;

const provinces = require('./../../public/data/area/provinces.json');
const cities = require('./../../public/data/area/cities.json');
const areas = require('./../../public/data/area/areas.json');
const streets = require('./../../public/data/area/streets.json');
const villages = require('./../../public/data/area/villages.json');

const pc = require('./../../public/data/area/pc-code.json');
const pca = require('./../../public/data/area/pca-code.json');
const pcas = require('./../../public/data/area/pcas-code.json');

/**
 * @Controller 地区
 * Administrative-divisions-of-China
 */
class MockAreaController extends Controller {
  /**
   * @summary 省级（省份、直辖市、自治区）
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/provinces
   */
  async provinces() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: provinces,
      msg: '获取成功',
    };
  }
  /**
   * @summary 地级（城市）
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/cities
   */
  async cities() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: cities,
      msg: '获取成功',
    };
  }
  /**
   * @summary 县级（区县）
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/areas
   */
  async areas() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: areas,
      msg: '获取成功',
    };
  }
  /**
   * @summary 乡级（乡镇、街道）
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/streets
   */
  async streets() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: streets,
      msg: '获取成功',
    };
  }
  /**
   * @summary 村级（村委会、居委会）
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/villages
   */
  async villages() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: villages,
      msg: '获取成功',
    };
  }

  /**
   * @summary “省份、城市” 二级联动数据
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/pc
   */
  async pc() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: pc,
      msg: '获取成功',
    };
  }
  /**
   * @summary “省份、城市、区县” 三级联动数据
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/pca
   */
  async pca() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: pca,
      msg: '获取成功',
    };
  }
  /**
   * @summary “省份、城市、区县、乡镇” 四级联动数据
   * @description 这是一个城市接口
   * @Router GET /mock-api/area/pcas
   */
  async pcas() {
    const { ctx } = this;
    ctx.body = {
      code: 200,
      reqUrl: ctx.request.url,
      reqMethod: ctx.request.method,
      reqData: ctx.request.body,
      data: pcas,
      msg: '获取成功',
    };
  }
}

module.exports = MockAreaController;
